#ifndef __DAO_GSL_FFT_H__
#define __DAO_GSL_FFT_H__
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#include<dao.h>
#include<gsl/gsl_fft.h>
#include<gsl/gsl_fft_real.h>
#include<gsl/gsl_fft_real_float.h>
#include<gsl/gsl_fft_halfcomplex.h>
#include<gsl/gsl_fft_halfcomplex_float.h>
#include<gsl/gsl_fft_complex.h>
#include<gsl/gsl_fft_complex_float.h>
#include<gsl/gsl_dft_complex.h>
#include<gsl/gsl_dft_complex_float.h>
#ifndef DAO_GSL_TYPES_STATIC
#define DAO_DLL_GSL_TYPES DAO_DLL_IMPORT
#include"dao_gsl_types.h"
#else
#define DAO_DLL_GSL_TYPES
#include"dao_gsl_types.h"
#endif
#ifndef DAO_GSL_FFT_STATIC
#ifndef DAO_DLL_GSL_FFT
#define DAO_DLL_GSL_FFT DAO_DLL_EXPORT
#endif
#else
#define DAO_DLL_GSL_FFT
#endif

extern DaoVmSpace *__daoVmSpace;

#ifdef __cplusplus
extern "C"{
#endif

extern DaoTypeBase *dao__gsl_matrix_char_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_char_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_complex_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_complex_float_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_complex_float_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_complex_long_double_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_complex_long_double_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_complex_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_float_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_float_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_int_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_int_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_long_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_long_double_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_long_double_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_long_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_short_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_short_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_uchar_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_uchar_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_uint_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_uint_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_ulong_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_ulong_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_ushort_const_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_ushort_view_Typer;
extern DaoTypeBase *dao__gsl_matrix_view_Typer;
extern DaoTypeBase *dao__gsl_vector_char_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_char_view_Typer;
extern DaoTypeBase *dao__gsl_vector_complex_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_complex_float_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_complex_float_view_Typer;
extern DaoTypeBase *dao__gsl_vector_complex_long_double_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_complex_long_double_view_Typer;
extern DaoTypeBase *dao__gsl_vector_complex_view_Typer;
extern DaoTypeBase *dao__gsl_vector_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_float_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_float_view_Typer;
extern DaoTypeBase *dao__gsl_vector_int_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_int_view_Typer;
extern DaoTypeBase *dao__gsl_vector_long_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_long_double_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_long_double_view_Typer;
extern DaoTypeBase *dao__gsl_vector_long_view_Typer;
extern DaoTypeBase *dao__gsl_vector_short_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_short_view_Typer;
extern DaoTypeBase *dao__gsl_vector_uchar_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_uchar_view_Typer;
extern DaoTypeBase *dao__gsl_vector_uint_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_uint_view_Typer;
extern DaoTypeBase *dao__gsl_vector_ulong_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_ulong_view_Typer;
extern DaoTypeBase *dao__gsl_vector_ushort_const_view_Typer;
extern DaoTypeBase *dao__gsl_vector_ushort_view_Typer;
extern DaoTypeBase *dao__gsl_vector_view_Typer;
extern DaoTypeBase *dao_gsl_block_Typer;
extern DaoTypeBase *dao_gsl_block_char_Typer;
extern DaoTypeBase *dao_gsl_block_complex_Typer;
extern DaoTypeBase *dao_gsl_block_complex_float_Typer;
extern DaoTypeBase *dao_gsl_block_complex_long_double_Typer;
extern DaoTypeBase *dao_gsl_block_float_Typer;
extern DaoTypeBase *dao_gsl_block_int_Typer;
extern DaoTypeBase *dao_gsl_block_long_Typer;
extern DaoTypeBase *dao_gsl_block_long_double_Typer;
extern DaoTypeBase *dao_gsl_block_short_Typer;
extern DaoTypeBase *dao_gsl_block_uchar_Typer;
extern DaoTypeBase *dao_gsl_block_uint_Typer;
extern DaoTypeBase *dao_gsl_block_ulong_Typer;
extern DaoTypeBase *dao_gsl_block_ushort_Typer;
extern DaoTypeBase *dao_gsl_complex_Typer;
extern DaoTypeBase *dao_gsl_complex_float_Typer;
extern DaoTypeBase *dao_gsl_complex_long_double_Typer;
extern DaoTypeBase *dao_gsl_error_handler_t_Typer;
extern DaoTypeBase *dao_gsl_fft_complex_wavetable_Typer;
extern DaoTypeBase *dao_gsl_fft_complex_wavetable_float_Typer;
extern DaoTypeBase *dao_gsl_fft_complex_workspace_Typer;
extern DaoTypeBase *dao_gsl_fft_complex_workspace_float_Typer;
extern DaoTypeBase *dao_gsl_fft_halfcomplex_wavetable_Typer;
extern DaoTypeBase *dao_gsl_fft_halfcomplex_wavetable_float_Typer;
extern DaoTypeBase *dao_gsl_fft_real_wavetable_Typer;
extern DaoTypeBase *dao_gsl_fft_real_wavetable_float_Typer;
extern DaoTypeBase *dao_gsl_fft_real_workspace_Typer;
extern DaoTypeBase *dao_gsl_fft_real_workspace_float_Typer;
extern DaoTypeBase *dao_gsl_ieee_double_rep_Typer;
extern DaoTypeBase *dao_gsl_ieee_float_rep_Typer;
extern DaoTypeBase *dao_gsl_matrix_Typer;
extern DaoTypeBase *dao_gsl_matrix_char_Typer;
extern DaoTypeBase *dao_gsl_matrix_complex_Typer;
extern DaoTypeBase *dao_gsl_matrix_complex_float_Typer;
extern DaoTypeBase *dao_gsl_matrix_complex_long_double_Typer;
extern DaoTypeBase *dao_gsl_matrix_float_Typer;
extern DaoTypeBase *dao_gsl_matrix_int_Typer;
extern DaoTypeBase *dao_gsl_matrix_long_Typer;
extern DaoTypeBase *dao_gsl_matrix_long_double_Typer;
extern DaoTypeBase *dao_gsl_matrix_short_Typer;
extern DaoTypeBase *dao_gsl_matrix_uchar_Typer;
extern DaoTypeBase *dao_gsl_matrix_uint_Typer;
extern DaoTypeBase *dao_gsl_matrix_ulong_Typer;
extern DaoTypeBase *dao_gsl_matrix_ushort_Typer;
extern DaoTypeBase *dao_gsl_stream_handler_t_Typer;
extern DaoTypeBase *dao_gsl_vector_Typer;
extern DaoTypeBase *dao_gsl_vector_char_Typer;
extern DaoTypeBase *dao_gsl_vector_complex_Typer;
extern DaoTypeBase *dao_gsl_vector_complex_float_Typer;
extern DaoTypeBase *dao_gsl_vector_complex_long_double_Typer;
extern DaoTypeBase *dao_gsl_vector_float_Typer;
extern DaoTypeBase *dao_gsl_vector_int_Typer;
extern DaoTypeBase *dao_gsl_vector_long_Typer;
extern DaoTypeBase *dao_gsl_vector_long_double_Typer;
extern DaoTypeBase *dao_gsl_vector_short_Typer;
extern DaoTypeBase *dao_gsl_vector_uchar_Typer;
extern DaoTypeBase *dao_gsl_vector_uint_Typer;
extern DaoTypeBase *dao_gsl_vector_ulong_Typer;
extern DaoTypeBase *dao_gsl_vector_ushort_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_array_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_array_float_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_array_long_double_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_float_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_float_ptr_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_long_double_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_long_double_ptr_Typer;
extern DaoTypeBase *dao_gsl_complex_packed_ptr_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_array_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_array_float_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_array_long_double_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_float_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_float_ptr_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_long_double_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_long_double_ptr_Typer;
extern DaoTypeBase *dao_gsl_const_complex_packed_ptr_Typer;
#ifdef __cplusplus
}
#endif


gsl_fft_complex_wavetable* DAO_DLL_GSL_FFT Dao_gsl_fft_complex_wavetable_New();

gsl_fft_complex_wavetable_float* DAO_DLL_GSL_FFT Dao_gsl_fft_complex_wavetable_float_New();

gsl_fft_complex_workspace* DAO_DLL_GSL_FFT Dao_gsl_fft_complex_workspace_New();

gsl_fft_complex_workspace_float* DAO_DLL_GSL_FFT Dao_gsl_fft_complex_workspace_float_New();

gsl_fft_halfcomplex_wavetable* DAO_DLL_GSL_FFT Dao_gsl_fft_halfcomplex_wavetable_New();

gsl_fft_halfcomplex_wavetable_float* DAO_DLL_GSL_FFT Dao_gsl_fft_halfcomplex_wavetable_float_New();

gsl_fft_real_wavetable* DAO_DLL_GSL_FFT Dao_gsl_fft_real_wavetable_New();

gsl_fft_real_wavetable_float* DAO_DLL_GSL_FFT Dao_gsl_fft_real_wavetable_float_New();

gsl_fft_real_workspace* DAO_DLL_GSL_FFT Dao_gsl_fft_real_workspace_New();

gsl_fft_real_workspace_float* DAO_DLL_GSL_FFT Dao_gsl_fft_real_workspace_float_New();
#endif
